home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1991-06-01 | 2.9 KB | 115 lines |
- 1 'Multiple route subroutine for PitStop America
- 2 'Version 1.1 developed by FutureWave Shareware
- 3 'Programmed by M. Broughton Boone
- 4 ' A Shareware Program
- 10 DIM C$(100): DIM S$(100): DIM MA(100): DIM M(100): DIM MN(100): DIM RC$(100): DIM RS$(100): DIM RHI(100): DIM RMA(100)
- 100 'Multiroute Program
- 110 OPEN "I",#1,"carry.dat"
- 120 INPUT #1,CD$,SD$,DC$,DS$,DAY,SM,ED,ML,T,HT,TM,DM,CM
- 130 CLOSE #1
- 140 IH = HT
- 150 CS$ = CD$: SS$ = SD$
- 160 'Read in highway info
- 170 OPEN "I",#1,"Interste.dat"
- 180 WHILE NOT EOF(1)
- 190 INPUT #1,H,C$,S$,MA,M,MN
- 200 IF H = IH THEN C$(I) = C$: S$(I) = S$: MA(I) = MA: M(I) = M: MN(I) = MN: I = I+1
- 210 WEND
- 220 CLOSE #1
- 230 FOR X = 1 TO I
- 240 IF C$(X)=CS$ AND S$(X) = SS$ THEN GOSUB 1050
- 250 IF C$(X)=DC$ AND S$(X) = DS$ THEN GOSUB 1060
- 260 NEXT X
- 270 J = 1
- 280 OPEN "I",#1,"Intrstrc.dat"
- 290 WHILE NOT EOF(1)
- 300 INPUT #1,H,RC$,RS$,RHI,RMA
- 310 IF H = IH THEN RC$(J) = RC$: RS$(J) = RS$: RHI(J) = RHI: RMA(J) = RMA: J = J+1
- 320 WEND
- 330 CLOSE #1
- 340 IF K = 1 AND L = 1 THEN GOTO 1070 'load oneroute
- 350 IF K = 1 AND L <> 1 THEN GOTO 370
- 360 IF K <> 1 THEN GOTO 230
- 370 'Route Change Data Input
- 380 LOCATE 23,10: PRINT "Your destination is not on I-";IH;". Please wait..."
- 390 'Display Route Change Info Subroutine
- 400 CLS
- 410 PRINT TAB(30);"Routes Connecting to I-";IH
- 420 HF = IH
- 430 X = 3: Y = 1
- 440 FOR P = 1 TO J-1
- 450 IF X = 22 THEN Y = Y+40: X = 3
- 460 LOCATE X,Y: PRINT P;:LOCATE X,Y+4: PRINT"I-";:LOCATE X,Y+6: PRINT RHI(P);:LOCATE X,Y+11: PRINT RC$(P);",";RS$(P)
- 470 X = X+1
- 480 NEXT P
- 490 LOCATE 23,10: PRINT "Number (1-";P-1;") of new route";: INPUT A
- 500 IF A > P THEN 490: HT = RHI(A)
- 510 HT = RHI(A): CD$ = RC$(A) : CS$ = RS$(A)
- 520 GOSUB 1080
- 540 'Determine inital segment data
- 550 OPEN "I",#1,"Driving.dat"
- 560 INPUT #1,AS,HD,AT$,MD,AT
- 570 CLOSE #1
- 580 OPEN "I",#1,"Refuel.dat"
- 590 INPUT #1,TC,MPG,B$,MT
- 600 CLOSE #1
- 610 'Mileage info
- 620 'Var
- 630 'var
- 640 SM = D-S: IF SM < 0 THEN F=-1 ELSE F = 1
- 650 SM = ABS(SM): TM = TM+SM
- 660 'Refuel?
- 670 J = SI
- 680 J = SI+F
- 690 CM = CM + M(J): ML = ML - M(J)
- 700 IF ML < MN(J) THEN GOSUB 740
- 710 IF J = DI THEN 800
- 720 J = J+F
- 730 GOTO 690
- 740 'Refuel
- 750 OPEN "A",#1,"Fuel.dat"
- 760 WRITE #1,C$(J),S$(J),CM
- 770 CLOSE #1
- 780 T = T+1: CM = 0: ML = MT
- 790 RETURN
- 800 'Sleep Subroutine
- 810 J = SI + F
- 820 DM = DM - M(J): ED = ED + M(J)
- 830 IF MN(J) > DM THEN GOSUB 860
- 840 J = J+F: IF J = DI THEN 940
- 850 GOTO 820
- 860 'Sleep
- 870 TR = ED/AS: 'todays hours (TR)
- 880 TR$ = STR$(TR): TR$ = LEFT$(TR$,4): TR = VAL(TR$)
- 890 OPEN "A",#1,"Sleep.dat"
- 900 WRITE #1,DAY,TR,C$(J),S$(J),ED
- 910 CLOSE #1
- 920 DM = MD: ED = 0: DAY = DAY+1
- 930 RETURN
- 940 'Route information
- 950 OPEN "A",#1,"Route.dat"
- 960 WRITE #1,CS$,SS$,CD$,SD$,HF,HT,SM
- 970 CLOSE #1
- 980 'Carryover Information
- 990 OPEN "Carry.dat" FOR OUTPUT AS #1
- 1000 WRITE #1,CD$,SD$,DC$,DS$,DAY,SM,ED,ML,T,HT,TM,DM,CM
- 1010 CLOSE #1
- 1020 'Go back to beginning
- 1030 GOTO 100
- 1040 'Housekeeping
- 1050 SI = X: S = MA(X): K = 1: RETURN
- 1060 DI = X: D = MA(X): L = 1: RETURN
- 1070 CHAIN "oneroute
- 1080 OPEN "I",#1,"interste.dat"
- 1090 I = 1
- 1100 WHILE NOT EOF(1)
- 1110 INPUT #1,H,C$,S$,MA,M,MN
- 1120 IF H = IH THEN C$(I) = C$: S$(I) = S$: MA(I) = MA: M(I) = M: MN(I) = MN: I = I+1
- 1130 WEND
- 1140 CLOSE #1
- 1150 FOR X = 1 TO I
- 1160 IF CD$ = C$(X) AND SD$ = S$(X) THEN DI = X: D = MA(X)
- 1170 IF CD$ = C$(X) AND SD$ = S$(X) THEN D = MA(X)
- 1180 NEXT X
- 1190 RETURN
-